package cn.shengchao.examstar.rpc.uddsys.bi;

import cn.shengchao.examstar.rpc.base.TransResult;
import cn.shengchao.examstar.rpc.distribute.dto.DistributeNodeInfoPercentDto;
import cn.shengchao.examstar.rpc.distribute.dto.DistributePersonUserCreateDto;
import cn.shengchao.examstar.rpc.distribute.dto.DistributeNodeInfoCreateDto;
import cn.shengchao.examstar.rpc.distribute.dto.UserInviteDto;
import cn.shengchao.examstar.rpc.uddsys.dto.PlatformUserInfoDto;
import cn.shengchao.examstar.rpc.uddsys.req.DistributeNodeInfoEditReq;
import cn.shengchao.examstar.rpc.uddsys.req.DistributeNodeInfoStateReq;
import cn.shengchao.examstar.rpc.uddsys.dto.DistributeUserBankSaveDto;
import cn.shengchao.examstar.rpc.uddsys.resp.DistributeUserBankVo;

/**
 * @program: examstarapi
 * @description: 平台用户创建接口
 * @author: Xiong weiqiang
 * @create: 2025-03-29 13:55
 */
public interface PlatformUserArchBI {
     /**
      * 修改用户稳定分成比例
      * @param distributeUserInfoPercentDto
      */
     void editDistributeUserStablePercent(DistributeNodeInfoPercentDto distributeUserInfoPercentDto);

     /**
      * 修改节点状态
      * @param distributeNodeInfoStateReq
      */
     void updateNodeState(DistributeNodeInfoStateReq distributeNodeInfoStateReq);

     /**
      * 修改分销节点的基本信息
      * @param distributeNodeInfoEditReq
      */
     void updateNodeInfo(DistributeNodeInfoEditReq distributeNodeInfoEditReq);
     /**
      * 创建平台普通用户（学员身份）
      * @param platformUserInfoDto
      * @return
      */
     PlatformUserInfoDto createPlatformUser(PlatformUserInfoDto platformUserInfoDto);

     /**
      * 成为会员
      * @param distributePersonUserCreateDto
      */
     TransResult<String> createSaleDistributeMemberAndRoleChain(DistributePersonUserCreateDto distributePersonUserCreateDto);
     /**
      * 成为分销加盟商员工
      * @param distributePersonUserCreateDto
      */
     TransResult<String> createSaleDistributeJmsygAndRoleChain(DistributePersonUserCreateDto distributePersonUserCreateDto);
     /**
      * 成为加盟商
      * @param distributeMemberCreateDto
      */
     TransResult<String> createSaleDistributeJmsAndRoleChain(DistributeNodeInfoCreateDto distributeMemberCreateDto);
     /**
      * 成为市场经理
      * @param distributePersonUserCreateDto
      */
     TransResult<String> createSaleDistributeMarketManagerAndRoleChain(DistributePersonUserCreateDto distributePersonUserCreateDto);


     /**
      * 成为内容加盟商员工
      * @param distributePersonUserCreateDto
      */
     TransResult<String> createContentDistributeJmsygAndRoleChain(DistributePersonUserCreateDto distributePersonUserCreateDto);
     /**
      * 成为内容分销商
      * @param distributeMemberCreateDto
      */
     TransResult<String> createContentDistributeJmsAndRoleChain(DistributeNodeInfoCreateDto distributeMemberCreateDto);


     DistributeUserBankVo getDistributeUserBankVo(Long userId,Integer distributeType);


     void saveDistributeUserBank(DistributeUserBankSaveDto distributeUserBankSaveDto);
}